1872E - Data Structures Fan - CodeForces Solution


bitmasks

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
#define ll long long int

using namespace std;


int main(){
    ll t;
    cin>>t;
    while(t--){
    	ll n;
    	cin>>n;
    	ll a[n];
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    	}
    	string s;
    	cin>>s;
    	ll a1[n+1];
    	ll a0[n+1];
    	for(int i=0;i<=n;i++){
    		a1[i]=0;
    		a0[i]=0;
    	}
    	if(s[0]=='0') a0[1]=a[0];
    	if(s[0]=='1') a1[1]=a[0];
    	for(int i=2;i<=n;i++){
    		if(s[i-1]=='0'){
    			a0[i]=a0[i-1]^a[i-1];
    			a1[i]=a1[i-1];
    		}
    		else{
    			a0[i]=a0[i-1];
    			a1[i]=a1[i-1]^a[i-1];
    		}

    	}
    	ll q;
    	cin>>q;
    	ll f=a0[n];
    	ll ff=a1[n];
    	while(q--){
    		ll x;
    		cin>>x;
    		if(x==2){
    			
    			ll y;
    			cin>>y;
    			if(y==0) cout<<f<<" ";
    			else cout<<ff<<" ";
    		 
    		}
    		else{
    			ll y ,z;
    			cin>>y>>z;
    			f=f^a0[y-1]^a0[z]^a1[y-1]^a1[z];
    			ff=ff^a1[y-1]^a1[z]^a0[y-1]^a0[z];
    		}

    	}
    	cout<<endl;

    

    }
     
    }


Comments

Submit
0 Comments
More Questions

1169A - Circle Metro
780C - Andryusha and Colored Balloons
1153A - Serval and Bus
1487C - Minimum Ties
1136A - Nastya Is Reading a Book
1353B - Two Arrays And Swaps
1490E - Accidental Victory
1335A - Candies and Two Sisters
96B - Lucky Numbers (easy)
1151B - Dima and a Bad XOR
1435B - A New Technique
1633A - Div 7
268A - Games
1062B - Math
1294C - Product of Three Numbers
749A - Bachgold Problem
1486B - Eastern Exhibition
1363A - Odd Selection
131B - Opposites Attract
490C - Hacking Cypher
158B - Taxi
41C - Email address
1373D - Maximum Sum on Even Positions
1574C - Slay the Dragon
621A - Wet Shark and Odd and Even
1395A - Boboniu Likes to Color Balls
1637C - Andrew and Stones
1334B - Middle Class
260C - Balls and Boxes
1554A - Cherry